在昨天的文章有提到物件可以使用 . 來新增屬性,以下使用各種型別來新增屬性
物件新增屬性
const family = {};
family.name = 'weiwei';
console.log(family); // {name: 'weiwei'}
也許有人會問什麼是純值?
只要是原始型別就是純值
const newString = '小明';
newString.name = 'weiwei';
console.log(newString); // '小明'
console.log(newString.name); // undefined
在 JavaScript 中如果該屬性不存在時會回傳 undefined,
因此從範例可以知道純值是無法新增屬性
const newString2 = new String('weiwei');
newString2.name = 'weiwei';
console.log(newString);

我們可以看到在 newString 中新增了 name 屬性,
而在純值範例中得知純值無法新增屬性,
因此可以得知建構式為物件型別
const arr = [1, 2, 3];
arr.name = 'weiwei';
console.log(arr);

範例中得知我們能夠在陣列中加入屬性,
因此得知陣列為物件型別,
當我們要取出 name 的值時,可以使用 arr.name 或 arr['name'] 來取值

function callName() {
console.log('呼叫 weiwei');
};
console.log(callName);
console.log(typeof callName); // function
我們能看見單純使用 callName 只會看見函式內容,
無法看見內部屬性,而且函式型別為 function,
接著我們使用 console.dir() 來顯示 callName
function callName() {
console.log('呼叫 weiwei');
};
console.dir(callName);

此時我們能看見函式內部的屬性,
而函式內部的 name 屬性是無法被修改的,
該屬性的值表示函式名稱
當我們在函式中加入屬性時
function callName() {
console.log('呼叫 weiwei');
};
callName.wei = 'weiwei';
console.dir(callName);

我們可以看見在函式的屬性中新增 wei 的屬性,
因此可以得知函式也是物件
今天主要介紹純值跟物件的關係,
純值無法新增屬性,物件可以,
因此可以透過新增屬性的方式,
來了解一個值是純值還是物件,
以上就是今天的內容,感謝觀看!!